Hi,
I am writing a transparent proxy (using NETransparentProxyProvider) which could potentially multiplex thousands of flows.
When i've done this in the past on other platforms i've used libev or epoll - but NEAppProxyFlow (such as NEAppProxyTcpFlow) don't work with any of those approaches afaict, it doesn't even appear to work with swift-nio - what is the recommended way to multiplex thousands of flows?
I still intend to use swift-nio when i manage the real sockets (which proxy the flows), but how do i multiplex the NEAppProxyFlows themselves? Can someone suggest a highly scalable design? I'm new to this, and haven't found a good solution yet.
Thanks
Post
Replies
Boosts
Views
Activity
With the release of Big Sur - Network Kernel extensions are now officially inaccessible. However I cannot find the equivalent functionality I need in the new Network Extensions API.
In my company's NKE (network kernel extension) - we were able to control the routing of packets in a specific application by hooking socket binds and/or rewriting the source IP of outgoing packets for that application. Doing this we could control which interface those packets went through for that application (so called split tunneling).
I cannot see how to do something similar with the new System Extension/Network Extension APIs, even those updated for Big Sur.
Is it possible to achieve this in Big Sur? Which APIs should i be looking at?
Thanks!